/**
 * 项目名称: Topic_203.cpp
 * 项目路径: study/DataStructure/LinkedList/LeetCode
 * 编辑时间: 2024年06月25日21时38分14秒
 * 用   户: 轻尘
 */

#include <bits/stdc++.h>

using namespace std;

struct ListNode {
    int val;
    ListNode *next;

    ListNode() : val(0), next(nullptr) {}

    ListNode(int x) : val(x), next(nullptr) {}

    ListNode(int x, ListNode *next) : val(x), next(next) {}
};

ListNode* removeElements(ListNode* head, int val) {
//    // 暴力做法
//    if(head == nullptr)return nullptr;
//    ListNode * result = nullptr;
//    ListNode * pp=head;
//    while(pp){
//        if(pp->val != val){
//            ListNode * op = new ListNode;
//            op->val = pp->val;
//            op->next = nullptr;
//            if(result == nullptr)result =op;
//            else{
//                ListNode * ip = result;
//                while (ip->next)ip=ip->next;
//                ip->next = op;
//            }
//        }
//        pp=pp->next;
//    }
//    return result;
    while (head && head->val == val)head = head->next;

    ListNode * p = head;
    while (p && p->next){
        if(p->next->val == val)p->next = p->next->next;
        else p = p->next;
    }
    return head;
}
int main() {

    return 0;
}
